package com.appcheck.recording.handler;

import com.appcheck.recording.action.AbstractAction;
import com.appcheck.recording.action.impl.ClickAction;
import com.appcheck.recording.action.impl.DateChangedAction;
import com.appcheck.recording.action.impl.FocusAction;
import com.appcheck.recording.action.impl.ItemClickAction;
import com.appcheck.recording.action.impl.ItemSelectedAction;
import com.appcheck.recording.action.impl.KeyAction;
import com.appcheck.recording.action.impl.OrientationChangeAction;
import com.appcheck.recording.action.impl.ScrollListAction;
import com.appcheck.recording.action.impl.ScrollStateChangedAction;
import com.appcheck.recording.action.impl.TextChangedAction;
import com.appcheck.recording.action.impl.TimeChangedAction;
import com.appcheck.recording.action.impl.TouchAction;

public abstract interface AbstractActionHandler {
	public abstract void processAction(AbstractAction action);
	
	public abstract boolean visit(ClickAction clickAction);
	
	public abstract boolean visit(DateChangedAction dataChangedAction);
	
	public abstract boolean visit(TouchAction touchAction);
	
	public abstract boolean visit(ItemClickAction itemClickAction);

	public abstract boolean visit(ScrollListAction scrollListAction);

	public abstract boolean visit(
			ScrollStateChangedAction scrollStateChangedAction);

	public abstract boolean visit(KeyAction keyAction);

	public abstract boolean visit(TextChangedAction textChangedAction);

	public abstract boolean visit(FocusAction focusAction);

	public abstract boolean visit(ItemSelectedAction itemSelectedAction);

	public abstract boolean visit(TimeChangedAction timeChangedAction);

	public abstract boolean visit(
			OrientationChangeAction orientationChangeAction);
}
